EC2 から使用できる IMDS のバージョンを確認する方法を教えてください
困っていた内容
Security Hub で IMDSv2 の利用に関する内容が検知されました。
EC2 インスタンスに設定されている IMDS のバージョンを確認したいのですが、どこから確認できるのでしょうか。確認方法を教えてください。
AWS Foundational Security Best Practices コントロール - AWS Security Hub
[EC2.8] EC2 インスタンスは IMDSv2 を使用する必要があります
このコントロールは、EC2 インスタンスメタデータバージョンが、インスタンスメタデータサービスバージョン 2 (IMDSv2) で設定されているかどうかをチェックします。
どう対応すればいいの?
AWS CLI のdescribe-instancesを実行してください。
IMDS に関する設定は、describe-instancesの実行結果に含まれるMetadataOptions
から確認ができます。
HttpTokens
がoptional
の場合、IMDSv1 と IMDSv2 が使用可能HttpTokens
がrequired
の場合、IMDSv2 が使用可能
なお、describe-instancesの実行結果には、EC2 インスタンスに関わるさまざまな設定が含まるため、IMDS に関する情報だけを確認したい場合は、query
によるフィルタをご活用ください。
$ aws ec2 describe-instances --instance-id 【インスタンス ID】 --query "Reservations[*].Instances[*].MetadataOptions" [ [ { "State": "applied", "HttpTokens": "optional", "HttpPutResponseHopLimit": 1, "HttpEndpoint": "enabled", "HttpProtocolIpv6": "disabled", "InstanceMetadataTags": "disabled" } ] ]
$ aws ec2 describe-instances --instance-id 【インスタンス ID】 --query "Reservations[*].Instances[*].MetadataOptions" [ [ { "State": "applied", "HttpTokens": "required", "HttpPutResponseHopLimit": 1, "HttpEndpoint": "enabled", "HttpProtocolIpv6": "disabled", "InstanceMetadataTags": "disabled" } ] ]
マネジメントコンソールからは確認できないの?
2022年8月時点の挙動として、マネジメントコンソールからは確認ができないようです。
IMDS(インスタンスメタデータ)に関する設定変更も、EC2 インスタンス作成時を除き、マネジメントコンソール(EC2 コンソール)からはできないため、この機会に AWS CLI の利用もご検討ください。
インスタンスメタデータオプションの設定 - Amazon Elastic Compute Cloud
現在、既存のインスタンスでのインスタンスメタデータオプションの変更は、AWS SDK もしくは AWS CLI のみでサポートされます。Amazon EC2 コンソールを使用して、インスタンスメタデータオプションを変更することはできません。
なお、AWS ではマネジメントコンソールから AWS CLI などのコマンドが実行できるブラウザーベースのシェル環境が用意されています。
- AWS CloudShell とは? - AWS CloudShell
- 東京リージョンでAWS CloudShellを使ってみた | DevelopersIO
- AWSのCLI作業はどこで行う? 安全に管理するパターンとメリデメ集 | DevelopersIO
参考資料
- IMDSv2 の使用 - Amazon Elastic Compute Cloud
- インスタンスメタデータオプションの設定 - Amazon Elastic Compute Cloud
- AWS Foundational Security Best Practices コントロール - AWS Security Hub
- EC2 インスタンスメタデータサービスの拡張により、オープンなファイアウォール、リバースプロキシ、SSRFの脆弱性に対する防御を強化しました | Amazon Web Services ブログ
- [待望のアプデ]EC2インスタンスメタデータサービスv2がリリースされてSSRF脆弱性等への攻撃に対するセキュリティが強化されました! | DevelopersIO
- [UPDATE] IMDSv2を強制するIAMポリシーを検証してみた #reinvent | DevelopersIO